<?php

/**
 * 留言模型
 *
 * @author 煤老板 <meok23@sina.com>
 * @date   2017-06-07
 */

namespace app\admin\model;

use app\common\logic\Response;
use fw\base\Instance;
use fw\db\DB;
use fw\tool\Request;

class Msg extends \app\common\model\Msg
{
    use Instance;

    /**
     * 留言审阅
     *
     * @return array
     */
    public function check()
    {
        // 参数获取
        $msg_ids = Request::post('msg_ids', 'trim');
        $status = Request::post('status');

        // 参数校验
        if (empty($msg_ids) || !in_array($status, [0, 1])) {
            return Response::to([400, 'Parameter error.']);
        }

        // 操作数据库
        $affected_rows = DB::table('msg')->where('msg_id IN(:msg_id)', [':msg_id' => $msg_ids])->update(['status' => $status]);
        if ($affected_rows == false) {
            return Response::log([500, 'Insert fail.'], Request::post());
        }

        return Response::to([0, 'Success.', ['affected_rows' => $affected_rows]]);
    }

    /**
     * 删除数据
     *
     * @param array $args
     *
     * @return array
     */
    public function del($args)
    {
        // 参数获取
        $msg_id = (int)Request::input($args, 'msg_id');
        $op_user = (int)Request::input($args, 'op_user');

        // 参数校验
        if ($msg_id < 1 || $op_user < 1) {
            return Response::to([400, 'Parameter error.']);
        }

        // 查询信息
        $info = DB::table('msg')->where('msg_id=:msg_id', [':msg_id' => $msg_id])->selectRow();
        if (empty($info)) {
            return Response::log([404, 'Parameter error.'], $args);
        }

        // 放入回收站
        $data = [
            'channel'  => 'msg',
            'content'  => serialize($info),
            'del_time' => time(),
            'op_user'  => $op_user,
        ];
        DB::table('recy')->insert($data);

        // 删除数据
        $ret = DB::table('msg')->where('msg_id=:msg_id', [':msg_id' => $msg_id])->delete();
        if ($ret == false) {
            return Response::log([500, 'Delete fail.'], $args);
        }

        return Response::to([0, 'Success.']);
    }
}
